var app = angular.module("listApp", []),
	parid = UI.getParameterByName('parId');
var timeout_json = function(data, $window) {
	if(data.returnCode == 999994) {
		var ss = 3;
		layer.msg(data.returnMessage + "！<strong class='Ajax_Out'>" + ss + "</strong> 秒后前往登录页", 50, -1);
		var picInt = setInterval(function() {
			if(ss >= 1) {
				ss = ss - 1;
				$('.Ajax_Out').text(ss);
			} else {
				clearInterval(picInt);
				try {
//					$window.parent.location.href = data.returnData;
					$window.parent.location.href = basePath+"login/login.jsp";
					$window.location.href = basePath+"login/login.jsp";
				} catch(e) {
					log('timeout!')
				}
			}
		}, 1000);
		return false;
	}
}

app.config(function($httpProvider) {
	$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';
	$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
	$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
});

app.controller('tableCtrl', function($scope, $http, $window) {
	var vm = $scope.vm = {
		pageIndex: 1,
		pageSize: 10,
		name:'',
		note:'',
		groupId:'',
		cycle_id: ''
	}
	var stpage = function(ii) {
		var jpage = [],
			index = vm.pageIndex,
			pcount = vm.pageSize,
			total = $scope.datas.totalRecords;
		len = 0,
			j = 0,
			pindex,
			tii = (ii - 1) / 2,
			sii = (ii - 1);
		if(total % pcount == 0) {
			len = total / pcount;
		} else {
			len = parseInt(total / pcount) + 1;
		}
		if(len >= ii) {
			if(index < ii) {
				for(var i = 1; i <= len; i++) {
					j++;
					if(j <= ii) jpage.push(i);
				}
			} else if(index >= len - sii) {
				var pindex = index < len - tii ? index - tii : len - sii;
				for(var i = pindex; i <= len; i++) {
					j++;
					if(j <= ii) jpage.push(i);
				}
			} else {
				for(var i = index - tii; i <= len; i++) {
					j++;
					if(j <= ii) jpage.push(i);
				}
			}
		} else {
			for(var i = 1; i <= len; i++) {
				jpage.push(i);
			}
		};
		$scope.pages_e = len;
		$scope.pages = jpage;
	}
	//删除
	$scope.domAjax = function(e, id, name, gId) {
		var ids = '',
			de_id=id;
		
		$('.td .ui_checkbox.checked').each(function() {
			ids = ids + $(this).attr('data-id') + ',';
		});
//		if(ids.length>0){ 
//			//删除多条
//			ids = ids.substr(0, ids.length - 1);
//			id=ids;
//			$('.layerInfoArea .jtit p').eq(0).text('是否删本条内容！');
//		}
		if((e === 'del') || (e === 'delAll')) {
			$.layer({
				title: "温馨提示：",
				shade: [0],
				area: ['230', 'auto'],
				dialog: {
					msg: '确定删除吗？',
					btns: 2,
					type: -1,
					btn: ['确定', '取消'],
					yes: function() {
						//删除
						$http.get(basePath + 'report/deletedomain.do?domain_id=' + id +'&domain_name='+ name).success(function(data) {
							var j = timeout_json(data, $window);
							if(j == false) {
								return false;
							}
							layer.msg(data.returnMessage, 1, -1);
							setTimeout(function() {
								if(window.reLength==1&&vm['pageIndex']>1){
									$scope.setAjax({"pageindex" : vm['pageIndex']-1});
								}else{
									$scope.setAjax();
								}
							},1000);
						});

					},
					no: function() {}
				}
			});
		}

	}

    $scope.modifyBtn = function(id,isOpen,groupName,cycleName) {
    	if(id != undefined) {
	        $.layer({
	            title: "温馨提示：",
	            shade: [0],
	            area: ['230', 'auto'],
	            dialog: {
	            	msg: '确定'+(isOpen==0?"开启生成报告状态？":"关闭生成报告状态？"),
//    		                msg: '确定要修改为'+($(this)[0].$$watchers[0].last)+"状态?",
	                btns: 2,
	                type: -1,
	                btn: ['确定', '取消'],
	                yes: function() {
	        			var rptModel = {
        					"id":id,
        		            "name": groupName,
        		            "groupId": null,
        		            "isOpen": isOpen,
        		            "cycleId": null,
        		            "note": cycleName,
        		            "moduleSort": null
        				}
	        			//0--表示目前为关闭状态，点击按钮后请求开启，所以赋值为1，再发送。
	        			if(rptModel.isOpen==0){
	        				rptModel.isOpen=1;
	        			}else{
	        				rptModel.isOpen=0;
	        			}
	            		$.post(basePath + 'rpt/view/isOpen.do',rptModel).success(function(data) {
	                        var j = timeout_json(data, $window);
	                        if(j == false) {
	                            return false;
	                        }
	            			layer.msg(data.returnMessage, 1, 10);
	                        setTimeout(function() {
	                            $scope.setAjax();
	                          /*  window.location.href = basePath + 'report/reportList.jsp?parId=302';*/
	                        },1000);
	                    });
	                },
	                no: function() {}
	            }
	        });
    	} 
    }
	
	$scope.setAjax = function(obj) {
		if(obj) {
			vm["pageSize"] = obj.pagesize || vm["pageSize"];
			vm["pageIndex"] = obj.pageindex || vm["pageIndex"];
			//判断输入的页数是否大于最大的页数
			if(vm["pageIndex"]>$scope.pages_e){
				vm["pageIndex"]=$scope.pages_e;
			}
		}
		$scope.addparid = parid;
		vm.cycle_id = $(".infoVal").val();
		url = basePath + 'rpt/view/selectAll.do?pageIndex=' + vm['pageIndex'] + '&pageSize=' + vm['pageSize'] + '&vtimes=' + new Date().getTime();
		if(vm.name != undefined && vm.name != "") url = url + '&name=' + encodeURIComponent(vm['name']);
		if(vm.groupId != undefined && vm.groupId != "") url = url + '&groupId=' + vm['groupId'];
		if(vm.cycle_id != undefined && vm.cycle_id != "") url = url + "&cycleId=" + vm['cycle_id'];
		if(vm.note != undefined && vm.note != "") url = url + '&note=' + encodeURIComponent(vm['note']);
	    var dLoading='';
	    $scope.dLoading=true;
	    $(".fuzzy").addClass("fuzzyCss");
	    
		$http.get(url).success(function(data) {
			//获取本次返回数据的条数
			window.reLength = data.returnData.length;
			//取得当前页面的上一页、下一页
			$scope.prevIndex = parseInt($("#jsgo .cur").text())-1;
			$scope.nextIndex = parseInt($("#jsgo .cur").text())+1;
			
			var j = timeout_json(data, $window);
			if(j == false) {
				return false;
			}
			$('#zcont').removeClass('checked');
			$scope.datas = data;
			stpage(7);
			$scope.dLoading=false;
			 $(".fuzzy").removeClass("fuzzyCss");
			if($scope.dLoading==false){
				if(data.returnData.length <= 0) {
					layer.msg('无数据！', 1, -1);
				}
			}
			$scope.keyInt="";
		});
	};
	$scope.setAjax();
	
	$scope.getAjax = function() {
		vm["pageIndex"] = 1;
		$scope.setAjax();
	}

	$(document).live('keyup', function(e) {
		e = e || window.event;
		if(e.keyCode == 13) {
			$scope.getAjax();
		}
	});
});

app.directive('pagen', function() { //页总数
	return {
		link: function($scope, ele) {
			ele.bind('click', function() {
				var pagesize = $(this).text();
				$(ele).addClass('cur').siblings().removeClass('cur');
				$scope.setAjax({
					"pagesize": pagesize,
					"pageindex": 1
				});
			});
		}
	}
});
app.directive('pageg', function() { //fenye
	return {
		link: function($scope, ele) {
			ele.bind('click', function() {
				var index = $(this).attr('data-href');
				/**
				 * 条件一：如果index为非数字，点击上一页，设为当前页码-1;
				 * 条件二：如果index为非数字，点击下一页，设为当前页码+1;
				 */
				if(isNaN(index) && $(this).attr('class')=="str"){
					index = parseInt($("#jsgo .cur").text())-1;
				}else if(isNaN(index) && $(this).attr('class')=="end"){
					index = parseInt($("#jsgo .cur").text())+1;
				}
				$scope.setAjax({
					"pageindex": index
				});
			});
		}
	}
});

app.directive('agSelect', function($http){
	return { 
		restrict:'AE',
		scope:{ 
			groupId:'=groupId'
		},
		template:'<div class="ui_select"><input type="text" id="groupInputText" class="ui_s_t" ng-model="stxt" /><div class="ui_s_bk"><a href="javascript:void(0)" class="cur" data-id="0">全部</a><a href="javascript:void(0)" ng-repeat="key in dataGroupSelects | filter: {groupName:stxt}" ng-bind="key.groupName" data-id="{{key.groupId}}"></a></div></div>',
		controller:function($scope,$element,$attrs){ 
			var a = $element.find('.ui_s_t'),
				b = $element.find('.ui_s_bk'),
				c = $attrs.ajaxs,
				d = $attrs.loadajaxs;
			$element.children('.ui_select').css('zIndex',100);
			$element.bind('click', function() {
				b.slideDown();
			});
			$element.bind('mouseleave', function() {
				if(a.text()!=""){
					b.hide();
				}
			});
		},
		link:function($scope,$element,$attrs){ 
			$scope.stxt='全部';
			var a=$element.find('.ui_s_t'),
				b=$element.find('.ui_s_bk'),
				c=$attrs.ajaxs;
			if(c!=undefined) {
				$http.get(c+'?vtimes='+new Date().getTime()).success(function(data){ 
					$scope.dataGroupSelects=data.returnData;
				});
			}			
			a.click(function() {
				$scope.stxt=undefined;
				$scope.$apply();
			});
			b.find('a').live("click",function(){ 
				b.hide();
				$(this).addClass('cur').siblings().removeClass('cur');
				a.val($(this).text());
				$scope.stxt=$(this).text();
				if($attrs.groupId!=undefined) {
					$scope.groupId=parseInt($(this).attr('data-id')); 
					$("#groupIds").val(parseInt($(this).attr('data-id')));
				}
				$scope.$apply();
 				return false;
			});
			$element.bind('mouseleave',function(){ 
				$("#groupInputText").val(b.find('a.cur').text());
				b.find('.ui_s_t').blur();
				b.hide();
//				$scope.$apply();
				return false;
			});
		}
	}
});

$(function() {
	laydate.skin('molv');
	$('.ui_select_msg').each(function() {
		var _ = $(this),
			_a = _.find('.ui_s_t_msg'),
			_c = _.find('.ui_s_bk_msg'),
			_ca = _c.find('a');
		_a.live('click', function() {
			_c.slideToggle(200, "easeInSine");
		});
		_ca.live('click', function() {
			$(this).addClass('cur').siblings().removeClass('cur');
			_a.text($(this).text());
			$("#reportSelects").val($(this).attr("type"));
			_c.slideToggle(200, "easeInSine");
		});
		_c.live('mouseleave', function() {
			_c.stop(false, true).slideUp(200, "easeInSine");
		});
	});

	$('.ui_select_msg').live('keyup', function(e) {
		var _ = $(this),
			b = _.find('.ui_s_bk_msg'),
			di = 27;
		_.focus();
		e = e || window.event;
		var indx = b.find('a.cur').index() || 0;
		if(e.keyCode == 40) {
			var aindx = indx + 1,
				sct;
			if(rindx >= b.find('a').length) {
				rindx = b.find('a').length;
			}
			b.find('a').eq(aindx).addClass('cur').siblings('a').removeClass('cur');
			sct = aindx * di > 180 ? aindx * di - 80 : 0;
			b.scrollTop(sct);
		} else if(e.keyCode == 38) {
			var rindx = indx - 1,
				sct;
			sct = aindx * di > 100 ? aindx * di : 0;
			if(rindx <= 0) {
				rindx = 0;
			}
			b.find('a').eq(rindx).addClass('cur').siblings('a').removeClass('cur');
			sct = rindx * di > 180 ? rindx * di - 80 : 0;
			b.scrollTop(sct);
		} else if(e.keyCode == 13) {
			b.find('a.cur').trigger('click');
			_.blur();
			_.find('.ui_s_t_msg').blur();
		}
		return false;
	});
	
/*	$('#zcont').on('click', function() {
		$(this).toggleClass('checked');
		if ($(this).attr('class').search('checked') > -1) {
			$('.td .ui_checkbox').addClass('checked');
		} else {
			$('.td .ui_checkbox').removeClass('checked');
		}
	});
	$('.td .ui_checkbox').live('click', function() {
		$(this).toggleClass('checked');
	});*/
});